home *** CD-ROM | disk | FTP | other *** search
- 0 rem--ahoy--jan issue--interrupt music--prog page 21
- 1 remnants of my old piano... (c) 1983 by pete lobl river city, u.s.a.
- 4 onqqgoto50
- 5 poke52,89:poke56,89:clr:h=1:poke53280,0:poke53281,0
- 7 printchr$(8):gosub10000:i=-rnd(ti)
- 8 print"want to reset the clocks?(y/n)";:gosub5310:ifleft$(in$,1)<>"y"then20
- 9 fori=56331to56238step-1:pokei,0:next:fori=56587to56584step-1:pokei,0:next
- 20 a=peek(56328):b=peek(56584):print"please wait, reading in data..."
- 21 dimo1%(12),o2%(12),o3%(12),o4%(12),o5%(12),o6%(12),o7%(12),o8(12)
- 23 dimn$(15):fori=1to15:readn$(i):next
- 24 diml$(5):fori=1to5:readl$(i):next
- 25 dimns$(12):fori=1to12:readns$(i):next
- 26 dimnf$(12):fori=1to12:readnf$(i):next
- 27 dimnu(15):fori=1to15:readnu(i):next
- 28 fori=54272to54296:pokei,0:next
- 30 fori=1to12:reado1%(i):next
- 31 fori=1to12:reado2%(i):next
- 32 fori=1to12:reado3%(i):next
- 33 fori=1to12:reado4%(i):next
- 34 fori=1to12:reado5%(i):next
- 35 fori=1to12:reado6%(i):next
- 36 fori=1to12:reado7%(i):next
- 37 fori=1to12:reado8(i):next
- 40 v1=6*4096-1:v2=8*4096-1:t=0:o=5:n=1:f1=8192:f2=f1:v=1:b1=v:b2=v:a1=0:a2=a1
- 41 sy=5*4096+10*256+48:ys=5*4096+10*256+48+11:n2=n:sp=57:c1=23124:c2=c1+41
- 42 s$="short ":l$="tied ":l$(0)="length =":q$=""
- 45 o2=o:t2=t:n2=n
- 47 fori=22784to23205:reada:pokei,a:next
- 50 ifv=2 then240
- 51 print"[147]blocks free";int(f1/3);" : :";
- 52 print" voice 1":sysc1
- 53 print"position"tab(16)n;tab(22)n+1;tab(28)n+2
- 55 print"values"tab(16)peek(n+v1)" "peek(n+v1+1)" "peek(n+v1+2)
- 58 print"meaning"tab(10);:a=peek(n+v1):b=peek(n+v1+1):c=peek(n+v1+2)
- 60 ifa=0thenprint"at/dec ="b"sus/rel ="c:goto100
- 63 j=0:fori=1to15:ifa=nu(i)thenj=i
- 64 next:ifj=0thenprintl$(0)a;:goto80
- 66 z=int(j/3):y=j-z*3:ifythenz=z+1
- 67 ify=1thenprints$;
- 68 ify=0thenprintl$;
- 69 printl$(z)" ";
- 80 j=b*256+c:fori=1to12:ifj=o1%(i)thena=1:b=i:goto90
- 82 ifj=o2%(i)thena=2:b=i:goto90
- 83 ifj=o3%(i)thena=3:b=i:goto90
- 84 ifj=o4%(i)thena=4:b=i:goto90
- 85 ifj=o5%(i)thena=5:b=i:goto90
- 86 ifj=o6%(i)thena=6:b=i:goto90
- 87 ifj=o7%(i)thena=7:b=i:goto90
- 88 ifj=o8(i)thena=8:b=i:goto90
- 89 next:ifj>0thenprint" ? note":goto100
- 90 i=13:ifj=0thenprint" rest":goto100
- 92 next:printa;:in$=ns$(b):a$=nf$(b):ifa$=in$thenprinta$:goto100
- 94 printin$" ("a$")"
- 100 print""
- 102 print"l[146]=load s[146]=save g[146]=goto n[146]=next b[146]=back"
- 104 print"c[146]=change p[146]=play t[146]=transfer f[146]=find ?[146]=dump"
- 105 print"h[146]=help z[146]=speed v[146]=volume e[146]=edit"
- 106 print"current block ="b1
- 108 print"octave "o" tempo "t" speed "sp
- 110 a$="":print"input : ";:h=.:gosub5310:h=1:a$=in$
- 111 ifleft$(a$,1)="h"ora$="*h"thengosub7000:goto50
- 112 ifleft$(a$,1)="*"then141
- 113 a=val(left$(a$,1)):ifathengosub422:o=a:goto116
- 114 b$=left$(a$,2):ifright$(b$,1)=" "thenb$=left$(b$,1)
- 115 goto117
- 116 b$=mid$(a$,2,2):ifright$(b$,1)=" "thenb$=left$(b$,1)
- 117 j=0:fori=1to12:ifb$=ns$(i)thenj=i
- 118 next:ifjthen122
- 119 j=0:fori=1to12:ifb$=nf$(i)thenj=i
- 120 next:ifjthen122
- 121 goto402
- 122 onogosub400,410,420,430,440,450,460,470
- 123 b=int(a/256):c=a-b*256:pokev1+n+1,b:pokev1+n+2,c
- 124 j=o:fori=1tolen(a$):ifmid$(a$,i,1)=" "thenj=i
- 125 next:a$=right$(a$,len(a$)-j):j=0:fori=1to15:ifa$=n$(i)thenj=i
- 126 next:ifj=0thend=val(a$):goto128
- 127 d=nu(j):goto130
- 128 ifd>255thenprintq$;"duration too large !!":gosub8000:goto50
- 129 ifd<=0thenprintq$;"duration can't be less than 1 !!":gosub8000:goto50
- 130 d=d+t:ifd>255ord<=0then128
- 131 poken+v1,d:b1=b1+1:n=n+3:f1=f1-3
- 132 iff1<1thenprintq$"all blocks full for voice 1":gosub8000:goto426
- 133 ifright$(a$,1)="h"orright$(a$,2)="h "then461
- 134 ifval(a$)then138
- 135 ifright$(a$,1)="s"orright$(a$,2)="s "then471
- 136 poken+v1,1:poken+v1+1,0:poken+v1+2,0:goto140
- 137 poken+v1+2,0:goto140
- 138 ifa1=0then50
- 139 poken+v1,a1:poken+v1+1,0:goto137
- 140 b1=b1+1:n=n+3:f1=f1-3:goto424
- 141 a$=right$(a$,1):ifa$<>"g"then144
- 142 printq$"to what block ? ";:gosub5310:j=val(in$):ifj>2830orj<1then50
- 143 b1=j:f1=8193-b1*3:n=b1*3-2:goto50
- 144 ifa$<>"n"then147
- 145 j=b1:j=j+1:ifj<2831then143
- 146 goto50
- 147 ifa$<>"b"then150
- 148 j=b1:j=j-1:ifj>0then143
- 149 goto50
- 150 ifa$<>"l"then152
- 151 goto4000
- 152 ifa$<>"p"then165
- 153 ifp=1thensys5*4096+9*256+15*16+10:poke54296,0:p=0:goto50
- 154 print"[147]which voices do you want ? (1/2/b) ";:gosub5310:a$=in$
- 155 qq=5*4096+9*256:ifa$="2"thenpokeqq+68,0:pokeqq+109,0:pokeqq+21,0:goto160
- 156 print"what waveform for voice 1 ? (t/s/p/n) ";:gosub5310:a1=1:gosub433
- 157 pokeqq+68,wv:pokeqq+109,wv:pokeqq+21,wv-1
- 158 print"what block does it start at ? ";:gosub5310:vv=1:gosub452
- 159 ifa$="1"thensysqq+12*16:p=1:pokeqq+114,0:pokeqq+85,0:goto50
- 160 print"what waveform for voice 2 ? (t/s/p/n) ";:gosub5310:a1=2:gosub433
- 161 pokeqq+114,wv:pokeqq+85,wv-1
- 162 print"what block does it start at ? ";:gosub5310:vv=2:gosub452
- 163 sysqq+12*16:p=1:goto50
- 165 ifa$<>"c"then185
- 166 print"[147]your choice ? (v/t/dsr/au/ti/fs/x) ";:gosub5310:ifin$="x"then50
- 167 ifin$="t"thenprint"tempo ";:gosub5310:t=val(in$):goto166
- 168 ifin$="dsr"thenprint"attack/decay ? ";:gosub5310:a=val(in$):goto170
- 169 goto172
- 170 print"sustain/release ? ";:gosub5310:sr=val(in$):ifa>255orsr>255then166
- 171 poken+v1,0:poken+v1+1,a:poken+v1+2,sr:b1=b1+1:n=n+3:f1=f1-3:goto166
- 172 ifin$="v"thenv=v+1:v=v+2*(v=3):goto166
- 173 ifin$="au"thenprint"your new seperation ? ";:gosub5310:a1=val(in$):goto166
- 174 ifin$<>"fs"then473
- 175 print"[147]starting block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 176 j=val(in$)-a:ifa<1then166
- 177 print"slower or faster ? (s/f) ";:gosub5310:ifin$="s"thenr=2:k=1:goto179
- 178 r=.5:k=0
- 179 qq=6*4096+a*3-3:fori=qqtoqq+j*3step3:ifpeek(i)<2then182
- 180 a=int(peek(i)*r)+k:ifa>255thena=255
- 181 pokei,a
- 182 next:goto166
- 185 ifa$<>"t"then195
- 186 print"[147]begining block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 187 b=val(in$):print"origin voice ";:gosub5310:c=val(in$):j=b-a:ifj<1then50
- 188 print"destination block ";:gosub5310:b=val(in$):print"ending voice ";:gosub5310
- 189 r=val(in$):ifc=1thenqq=6*4096:goto191
- 190 qq=8*4096
- 191 r=8*4096:ifr=1thenr=6*4096
- 193 fori=qq+a*3-3toqq+a*3-3+j*3+2:poker+b*3-3,peek(i):r=r+1:next
- 194 goto50
- 195 ifa$<>"x"then197
- 196 sys5*4096+9*256+15*16+10:poke54296,0:p=0:printq$chr$(9)"[145][145]":goto20000
- 197 ifa$<>"s"then210
- 198 print"[147]starting block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 199 b=val(in$):print"voice ";:gosub5310:c=val(in$):ifb-a<1then50
- 200 ifc=1orc=2then202
- 201 goto50
- 202 qq=8*4096:ifc=1thenqq=6*4096
- 204 r=qq+a*3-3:qq=r+b*3:lo=12*4096+22:pokelo+1,int(r/256)
- 205 pokelo,r-(int(r/256))*256:pokelo+3,int(qq/256):pokelo+2,qq-(int(qq/256))*256
- 206 print"file name ? ";:gosub5310:lo=lo-16:iflen(in$)=0thendv=1:goto208
- 207 fori=1tolen(in$):pokelo+i-1,asc(mid$(in$,i,1)):next:dv=1
- 208 pokelo-1,len(in$):print"disk or tape?";:gosub5310:ifleft$(in$,1)="d"thendv=8
- 209 poke5*4096+10*256+10,dv:sys5*4096+10*256+7:goto50
- 210 ifa$<>"f"then230
- 211 print"[147]starting block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 212 b=val(in$):b=b-a:ifb<1then50
- 213 print"voice ";:gosub5310:c=val(in$):ifc=1thenc=6*4096:goto215
- 214 c=8*4096
- 215 qw=c:a=c+a*3-3:lo=12*4096+32-1:c=1
- 216 print"member"c;:gosub5310;:ifval(in$)=0then220
- 217 ifval(in$)<0orval(in$)>255then216
- 218 pokec+lo,val(in$):c=c+1:goto216
- 220 c=c-1:print"searching for ";:fori=1toc:printpeek(lo+i);:next:print
- 221 foi=atoa+b*3:forj=1toc:ifpeek(i+j-1)=peek(lo+j)thennext:goto223
- 222 j=c+1:next:goto224
- 223 qq=(int((i-qw)/3))+1:print"block"qq"position"qq*3-(int((i-qw)/(qq*3))+1)
- 224 next:print"hit a key to continue."
- 225 getr$:ifr$=""then225
- 226 goto50
- 230 ifa$<>"e"then500
- 231 printq$"what position ";:gosub5310:a=val(in$):print"what value ";:gosub5310
- 232 b=val(in$):ifb>255ora<0then50
- 233 poke6*4096+a-1,b:goto50
- 240 print"[147]blocks free";int(f2/3);" : :";
- 242 print" voice 2":sysc2
- 243 print"position"tab(16)n2;tab(22)n2+1;tab(28)n2+2
- 245 print"values"tab(16)peek(n2+v2)" "peek(n2+v2+1)" "peek(n2+v2+2)
- 248 print"meaning"tab(10);:a=peek(n2+v2):b=peek(n2+v2+1):c=peek(n2+v2+2)
- 250 ifa=0thenprint"at/dec ="b"sus/rel ="c:goto280
- 253 j=0:fori=1to15:ifa=nu(i)thenj=i
- 254 next:ifj=0thenprintl$(0)a;:goto260
- 256 z=int(j/3):y=j-z*3:ifythenz=z+1
- 257 ify=1thenprints$;
- 258 ify=0thenprintl$;
- 259 printl$(z)" ";
- 260 rem
- 261 j=b*256+c:fori=1to12:ifj=o1%(i)thena=1:b=i:goto270
- 262 ifj=o2%(i)thena=2:b=i:goto270
- 263 ifj=o3%(i)thena=3:b=i:goto270
- 264 ifj=o4%(i)thena=4:b=i:goto270
- 265 ifj=o5%(i)thena=5:b=i:goto270
- 266 ifj=o6%(i)thena=6:b=i:goto270
- 267 ifj=o7%(i)thena=7:b=i:goto270
- 268 ifj=o8(i)thena=8:b=i:goto270
- 269 next:ifj>0thenprint" ? note":goto280
- 270 i=13:ifj=0thenprint" rest":goto280
- 272 next:printa;:in$=ns$(b):a$=nf$(b):ifa$=in$thenprinta$:goto280
- 274 printin$" ("a$")"
- 280 print""
- 282 print"l[146]=load s[146]=save g[146]=goto n[146]=next b[146]=back e[146]=edt";
- 284 print"c[146]=change p[146]=play t[146]=transfer f[146]=find ?[146]=dump"
- 285 print"h[146]=help z[146]=speed v[146]=volume e[146]=edit"
- 286 print"current block ="b2
- 288 print"octave "o2" tempo "t2" speed "sp
- 290 a$="":print"input : ";:h=.:gosub5310:h=1:a$=in$
- 291 ifleft$(a$,1)="h"ora$="*h"thengosub7000:goto50
- 292 ifleft$(a$,1)="*"then321
- 293 a=val(left$(a$,1)):ifathengosub422:o2=a:goto296
- 294 b$=left$(a$,2):ifright$(b$,1)=" "thenb$=left$(b$,1)
- 295 goto297
- 296 b$=mid$(a$,2,2):ifright$(b$,1)=" "thenb$=left$(b$,1)
- 297 j=0:fori=1to12:ifb$=ns$(i)thenj=i
- 298 next:ifjthen302
- 299 j=0:fori=1to12:ifb$=nf$(i)thenj=i
- 300 next:ifjthen302
- 301 goto1402
- 302 ono2gosub400,410,420,430,440,450,460,470
- 303 b=int(a/256):c=a-b*256:pokev2+n2+1,b:pokev2+n2+2,c
- 304 j=0:fori=1tolen(a$):ifmid$(a$,i,1)=" "thenj=i
- 305 next:a$=right$(a$,len(a$)-j):j=0:fori=1to15:ifa$=n$(i)thenj=i
- 306 next:ifj=0thend=val(a$):goto308
- 307 d=nu(j):goto310
- 308 ifd>255thenprintq$;"duration too large !!":gosub8000:goto50
- 309 ifd<=0thenprintq$;"duration can't be less than 1 !!":gosub8000:goto50
- 310 d=d+t2:ifd>255ord<=0then308
- 311 poken2+v2,d:b2=b2+1:n2=n2+3:f2=f2-3
- 312 iff2<1thenprintq$"all blocks full for voice 1":gosub8000:goto1426
- 313 ifright$(a$,1)="h"orright$(a$,2)="h "then1461
- 314 ifval(a$)then318
- 315 ifright$(a$,1)="s"orright$(a$,2)="s "then1471
- 316 poken2+v2,1:poken2+v2+1,0:poken2+v2+2,0:goto320
- 317 poken2+v2+2,0:goto320
- 318 ifa2=0then50
- 319 poken2+v2,a2:poken2+v2+1,0:goto317
- 320 b2=b2+1:n2=n2+3:f2=f2-3:goto1424
- 321 a$=right$(a$,1):ifa$<>"g"then324
- 322 printq$"to what block ? ";:gosub5310:j=val(in$):ifj>2830orj<1then50
- 323 b2=j:f2=8193-b2*3:n2=b2*3-2:goto50
- 324 ifa$<>"n"then327
- 325 j=b2:j=j+1:ifj<2831then323
- 326 goto50
- 327 ifa$<>"b"then330
- 328 j=b2:j=j-1:ifj>0then323
- 329 goto50
- 330 ifa$<>"l"then332
- 331 goto4000
- 332 ifa$<>"p"then345
- 333 ifp=1thensys5*4096+9*256+15*16+10:poke54296,0:p=0:goto50
- 334 print"[147]which voices do you want ? (1/2/b) ";:gosub5310:a$=in$
- 335 qq=5*4096+9*256:ifa$="2"thenpokeqq+68,0:pokeqq+109,0:pokeqq+21,0:goto340
- 336 print"what waveform for voice 1 ? (t/s/p/n) ";:gosub5310:a1=1:gosub433
- 337 pokeqq+68,wv:pokeqq+109,wv:pokeqq+21,wv-1
- 338 print"what block does it start at ? ";:gosub5310:vv=1:gosub452
- 339 ifa$="1"thensysqq+12*16:p=1:pokeqq+114,0:pokeqq+85,0:goto50
- 340 print"what waveform for voice 2 ? (t/s/p/n) ";:gosub5310:a1=2:gosub433
- 341 pokeqq+114,wv:pokeqq+85,wv-1
- 342 print"what block does it start at ? ";:gosub5310:vv=2:gosub452
- 343 sysqq+12*16:p=1:goto50
- 345 ifa$<>"c"then365
- 346 print"[147]your choice ? (v/t/dsr/au/ti/fs/x) ";:gosub5310:ifin$="x"then50
- 347 ifin$="t"thenprint"tempo";:gosub5310:t2=val(in$):goto346
- 348 ifin$="dsr"thenprint"attack/decay ? ";:gosub5310:a=val(in$):goto350
- 349 goto352
- 350 print"sustain/release ? ";:gosub5310:sr=val(in$):ifa>255orsr>255then346
- 351 poken2+v2,0:poken2+v2+1,a:poken2+v2+2,sr:b2=b2+1:n2=n2+3:f2=f2-3:goto346
- 352 ifin$="v"thenv=v+1:v=v+2*(v=3):goto346
- 353 ifin$="au"thenprint"your new seperatioin ? ";:gosub5310:a2=val(in$):goto346
- 354 ifin$<>"fs"then1473
- 355 print"[147]starting block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 356 j=val(in$)-a:ifa<1then346
- 357 print"slower or faster ? (s/f) ";:gosub5310:ifin$="s"thenr=2:k=1:goto359
- 358 r=.5:k=0
- 359 qq=8*4096+a*3-3:fori=qqtoqq+j*3step3:ifpeek(i)<2then362
- 360 a=int(peek(i)*r)+k:ifa>255thena=255
- 361 pokei,a
- 362 next:goto346
- 365 ifa$<>"t"then375
- 366 print"[147]beginning block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 367 b=val(in$):print"origin voice ";:gosub5310:c=val(in$):j=b-a:ifj<1then50
- 368 print"destination block ";:gosub5310:b=val(in$):print"ending voice ";:gosub5310
- 369 r=val(in$):ifc=1thenqq=6*4096:goto191
- 370 qq=8*4096
- 371 ifr=1thenr=6*4096:goto193
- 372 r=8*4096
- 373 fori=qq+a*3-3toqq+a*3-3+j*3+2:poker+b*3-3,peek(i):r=r+1:next
- 374 goto50
- 375 ifa$<>"x"then377
- 376 sys5*4096+9*256+15*16+10:poke54296,0:p=0:printq$chr$(9)"[145][145]":goto20000
- 377 ifa$="s"then198
- 390 ifa$<>"f"then2410
- 391 print"[147]starting block ";:gosub5310:a=val(in$):print"ending block ";:gosub5310
- 392 b=val(in$):b=b-a:ifb<1then50
- 393 print"voice ";:gosub5310:c=val(in$):ifc=1thenc=6*4096:goto395
- 394 c=8*4096
- 395 qw=c:a=c+a*3-3:lo=12*4096+32-1:c=1
- 396 print"member"c;:gosub5310;:ifval(in$)=0then2400
- 397 ifval(in$)<0orval(in$)>255then396
- 398 pokec+lo,val(in$):c=c+1:goto396
- 400 a=o1%(j):return
- 402 ifleft$(a$,1)="r"thena=0:goto123
- 403 printq$"improper note !!":gosub8000:goto50
- 410 a=o2%(j):return
- 420 a=o3%(j):return
- 422 ifa=9thena=8
- 423 return
- 424 iff1<0thenprintq$"all blocks full for voice 1":gosub8000:goto426
- 425 goto50
- 426 b1=b1-1:n=n-3:f1=f1+3:goto50
- 430 a=o4%(j):return
- 433 ifin$="s"thenwv=33:return
- 434 ifin$="n"thenwv=129:return
- 435 ifin$<>"p"then439
- 436 print"[147]low pulse (0-255) ?[160]";:gosub5310:a=val(in$):print"high pulse (0-15) ? ";
- 437 gosub5310:wv=65:b=val(in$):ifa<0ora>255thena=127
- 438 goto456
- 439 wv=17:return
- 440 a=o5%(j):return
- 450 a=o6%(j):return
- 452 lo=val(in$):iflo<1orlo>2730thenlo=1
- 453 ifvv=2then455
- 454 a=6*4096+(lo*3-3):pokeqq+216,a-(int(a/256))*256:pokeqq+255,int(a/256):return
- 455 a=8*4096+(lo*3-3):pokeqq+221,a-(int(a/256))*256:pokeqq+229,int(a/256):return
- 456 ifb<0orb>15thenb=7
- 457 ifa1=1thenpoke54274,a:poke54275,b:return
- 459 poke54281,a:poke54282,b:return
- 460 a=o7%(j):return
- 461 b$=right$(a$,2):ifleft$(b$,1)=" "ora$="h"then134
- 462 goto50
- 470 a=o8(j):return
- 471 b$=right$(a$,2):ifleft$(b$,1)=" "ora$="s"then136
- 472 poken+v1,2:poken+v1+1,0:goto137
- 473 ifin$<>"ti"then166
- 474 print"[147]clock 1 equal ";:gosub5310:ifval(in$)=0then480
- 475 a=len(in$):ifa>6orin$=""then166
- 476 ifa<>6thenfori=1to6-a:in$="0"+in$:next
- 477 te=val(left$(in$,1))*16+val(mid$(in$,2,1))*16:ifte<256thenpoke56331,te
- 478 te=val(mid$(in$,4,1))+val(mid$(in$,3,1))*16:ifte<256thenpoke56330,te
- 479 te=val(right$(in$,1))+val(mid$(in$,5,1))*16:ifte<256thenpoke56329,te:goto481
- 480 fori=56331to56329step-1:pokei,0:next
- 481 print"[147]clock 2 equal ";:gosub5310:ifval(in$)=0then490
- 482 a=len(in$):ifa>6orin$=""then50
- 483 ifa<>6thenfori=1to6-a:in$="0"+in$:next
- 484 te=val(left$(in$,1))*16+val(mid$(in$,2,1))*16:ifte<256thenpoke56587,te
- 485 te=val(mid$(in$,4,1))+val(mid$(in$,3,1))*16:ifte<256thenpoke56586,te
- 486 te=val(right$(in$,1))+val(mid$(in$,5,1))*16:poke56585,te:poke56584,0:poke56328,0:goto50
- 490 fori=56587to56584step-1:pokei,0:next:poke56328,0:goto50
- 500 ifa$="v"then550
- 505 ifa$="?"then49000
- 510 ifa$<>"z"then50
- 511 print"[147]new speed ? ";:gosub5310:a=val(in$):ifa<1ora>255then50
- 512 poke56325,a:sp=a:goto50
- 550 print"[147]filter voice 1?(y/n)";:gosub5310:vw=0:ifleft$(in$,1)="y"thenvw=1
- 552 print"filter voice 2 ? (y/n) ";:gosub5310:ifleft$(in$,1)="y"thenvw=vw+2
- 556 print"resonance? (0-15) ";:gosub5310:in=int(val(in$)):ifin<0orin>15thenin=0
- 558 poke54295,vw+in*16:print"[147]want hi-pass filter ? (y/n) ";:gosub5310
- 560 vw=0:ifleft$(in$,1)="y"thenvw=64
- 562 print"want band-pass filter? (y/n) ";:gosub5310:ifleft$(in$,1)="y"thenvw=vw+32
- 564 print"want low-pass filter ? (y/n) ";:gosub5310:ifleft$(in$,1)="y"thenvw=vw+16
- 566 print"what volume ? (0-15) ";:gosub5310:in=int(val(in$)):ifin<0orin>15thenin=7
- 568 in=vw+in:print"[147]what high setting ? (0-15) ";:gosub5310:vw=int(val(in$))
- 570 ifvw<0orvw>15thenvw=0
- 572 print"what low setting ? (0-255) ";:gosub5310:vw=int(val(in$))
- 574 ifvw<0orvw>255thenvw=0
- 576 poke54294,vw:poke54296,in:goto50
- 1000 datass,s,sh,es,e,eh,qs,q,qh,hs,h,hh,ws,w,wh,sixteenth,eighth,quarter,half
- 1001 datawhole
- 1005 datac,c#,d,d#,e,f,f#,g,g#,a,a#,b
- 1007 datac,db,d,eb,e,f,gb,g,ab,a,bb,b
- 1009 data6,7,8,14,15,16,30,31,32,62,63,64,126,127,128
- 1010 data268,284,301,318,337,358,379,401,425,451,477,506
- 1012 data536,568,602,637,675,716,758,803,851,902,955,1012
- 1014 data1072,1136,1204,1275,1351,1432,1517,1607,1703,1804,1911,2025
- 1016 data2145,2273,2408,2551,2703,2864,3034,3215,3406,3608,3823,4050
- 1018 data4291,4547,4817,5103,5407,5728,6069,6430,6812,7217,7647,8101
- 1020 data8583,9094,9634,10207,10814,11457,12139,12860,13625,14435,15294,16203
- 1022 data17167,18188,19269,20415,21629,22915,24278,25721,27251,28871,30588,32407
- 1024 data34334,36367,38539,40830,43258,45830,48556,51443,54502,57743,61776,64814
- 1200 data174,0,192,236,1,192,240,7,232,142,0,192,76,59,89,160,0,140
- 1201 data0,192,169,32,141,4,212,177,251,141,1,192,240,104,200,177,251,141
- 1202 data1,212,200,177,251,141,0,212,24,165,251,105,3,133,251,144,6,165
- 1203 data252,105,0,133,252,174,2,192,236,3,192,240,12,169,33,141,4,212
- 1204 data232,142,2,192,76,49,234,160,0,140,2,192,169,32,141,11,212,177
- 1205 data253,141,3,192,240,68,200,177,253,141,8,212,200,177,253,141,7,212
- 1206 data169,33,141,4,212,169,33,141,11,212,24,165,253,105,3,133,253,144
- 1207 data6,165,254,105,0,133,254,76,49,234,200,177,251,141,5,212,200,177
- 1208 data251,141,6,212,24,165,251,105,3,133,251,165,252,105,0,133,252,76
- 1209 data15,89,200,177,253,141,12,212,200,177,253,141,13,212,24,165,253,105
- 1210 data3,133,253,165,254,105,0,133,254,76,79,89,169,0,141,0,192,141
- 1211 data1,192,141,2,192,141,3,192,168,153,0,212,200,192,2,208,248,169
- 1212 data0,234,133,251,169,0,133,253,169,96,133,252,169,128,133,254,169,15
- 1213 data141,24,212,120,169,0,141,20,3,169,89,141,21,3,88,96,120,169
- 1214 data49,141,20,3,169,234,141,21,3,88,96,169,1,162,1,160,255,32
- 1215 data186,255,173,5,192,162,6,160,192,32,189,255,173,22,192,133,249,173
- 1216 data23,192,133,250,174,24,192,172,25,192,169,249,32,216,255,96,56,32
- 1217 data240,255,142,48,192,140,49,192,96,24,172,49,192,174,48,192,32,240
- 1218 data255,96,169,0,160,3,153,8,220,153,8,221,136,16,247,96,160,7
- 1219 data162,0,189,9,220,24,41,15,105,48,153,19,4,24,189,9,220,74
- 1220 data74,74,74,24,105,48,136,153,19,4,136,136,232,224,3,208,223,173
- 1221 data11,220,96,160,7,162,0,189,9,221,24,41,15,105,48,153,19,4
- 1222 data24,189,9,221,74,74,74,74,24,105,48,136,153,19,4,136,136,232
- 1223 data224,3,208,223,173,8,221,96
- 1402 ifleft$(a$,1)="r"thena=0:goto303
- 1403 printq$"improper not !!":gosub8000:goto50
- 1424 iff2<0thenprintq$"all blocks full for voice 1":gosub8000:goto426
- 1425 goto50
- 1426 b2=b2-1:n2=n2-3:f2=f2+3:goto50
- 1461 b$=right$(a$,2):ifleft$(b$,1)=" "ora$="h"then314
- 1462 goto50
- 1471 b$=right$(a$,2):ifleft$(b$,1)=" "ora$="s"then316
- 1472 poken2+v2,2:poken2+v2+1,0:goto317
- 1473 ifin$<>"ti"then346
- 1474 print"clock 1 equal ";:gosub5310:ifval(in$)=0then480
- 1475 a=len(in$):ifa>6orin$""then346
- 1476 goto476
- 2400 c=c-1:print"searching for ";:fori=1toc:printpeek(lo+i);:next:print
- 2401 fori=atoa+b*3:forj=1toc:ifpeek(i+j-1)=peek(lo+j)thennext:goto2403
- 2402 j=c+1:next:goto2404
- 2403 qq=(int((i-qw)/3))+1:print"block"qq"position"qq*3-(int((i-qw)/(qq*3))+1)
- 2404 next:print"hit a key to continue."
- 2405 getr$:ifr$=""then2405
- 2406 goto50
- 2410 ifa$<>"e"then500
- 2411 printq$"what position ";:gosub5310:a=val(in$):print"what value ";:gosub5310
- 2412 b=val(in$):ifb>255ora<0then50
- 2413 poke8*4096+a-1,b:goto50
- 4000 d=1:printq$"disk or tape ? (d/t) ";:gosub5310:ifleft$(in$,1)="d"thend=8
- 4005 printq$"name of file ? [157][157][157][157][157][157][157][157]";:gosub5310:qq=1:loadin$,d,1
- 5310 in$=" ":l=1:zd$=chr$(20):cr$=chr$(13):w=646:i=1:g=15:n$="[157]":x=3:b$="zqw*"
- 5320 getz$:ifz$<>""then5350
- 5321 ifhthen5330
- 5322 ifv=2thenq=f1:f1=f2:te=c1:c1=c2
- 5323 syssy:print"blocks free"int(f1/x)"::"
- 5324 sysys:sysc1
- 5325 ifv=2thenf1=q:c1=te
- 5330 pokew,int(rnd(.)*g)+i:printmid$(b$,l,i)n$;:l=(xandl)+i:goto5320
- 5350 zi=asc(z$):zl=len(in$):if(ziand127)<32thenprint" [157]";:goto5380
- 5360 ifzl>15then5320
- 5370 in$=in$+z$:printz$;zd$;z$;
- 5380 ifzi=13thenin$=mid$(in$,2):y$=left$(in$,1):printcr$;:return
- 5390 ifzi=20andzl>1thenin$=left$(in$,zl-1):print"[157]";:goto5320
- 5400 ifzi=133thenz$=chr$(-20*(zl>1)):forzi=2tozl:printz$;:nextzi:goto5310
- 5410 goto5320
- 7000 print"[147]complete command listing"
- 7001 print"########################"
- 7002 print"*s = saves a file to disk
- 7003 [153]"*l = loads a file from disk
- 7004 print"*g = goto a specified block (note)
- 7005 [153]"*n = goto next block (note)
- 7006 print"*b = goto previous block (note)
- 7007 [153]"*e = edit specific single value
- 7008 print"*c = alter one of many editor values
- 7009 [153]" v = voice t = tempo dsr = adsr vals"
- 7010 [153]" au = auto durations ti = set time"
- 7011 [153]" fs = faster/slower x = back to editor"
- 7012 [153]"hit 'f1' to continue...."
- 7013 [161]r$:[139]r$[178]""[167]7013
- 7014 [139]r$[179][177]"input"[167]50
- 7015 [153]"load*? = dump music listings to printer"
- 7017 [153]"*p = play one or both voices"
- 7018 [153]"*t = transfer sections of music"
- 7019 [153]"*f = find a certain number of values"
- 7020 [153]"*x = leave program and save ml
- 7021 print"*h = command listing
- 7022 [153]"*v = change sid-chip settings"
- 7023 [153]"*s = change speed setting"
- 7025 [153]"enter octave, note, a space, then
- 7026 print"duration to directly enter music.
- 7027 [153]"use a '*' only for a command.
- 7028 print"hit a key to continue.
- 7029 [161]r$:[139]r$[178]""[167]7029
- 7030 [137]50
- 8000 [129]i[178]1[164]2500:[130]:[142]
- 10000 [153]"load c-64 interrupt music maker/editor"
- 10002 [153]" version 1.09/01/83"
- 10003 [153]" by pete lobl"
- 10004 [129]i[178]1[164]1000:[130]:[151]198,0:[142]
- 20000 [153]"loadtape or disk ?(t/d) ";:[141]5310:dv[178]8:[139][200](in$,1)[178]"t"[167]dv[178]1
- 20204 r[178]22784:qq[178]23206:lo[178]12[172]4096[170]22:[151]lo[170]1,[181](r[173]256)
- 20205 [151]lo,r[171]([181](r[173]256))[172]256:[151]lo[170]3,[181](qq[173]256):[151]lo[170]2,qq[171]([181](qq[173]256))[172]256
- 20206 [153]"ml file name ? ";:[141]5310:lo[178]lo[171]16:[139][195](in$)[178]0[167]20208
- 20207 [129]i[178]1[164][195](in$):[151]lo[170]i[171]1,[198]([202](in$,i,1)):[130]
- 20208 [151]lo[171]1,[195](in$):[139][195](in$)[178]0[175]dv[178]8[167][153]"missing file name !!":[137]20300
- 20209 [151]5[172]4096[170]10[172]256[170]10,dv:[158]5[172]4096[170]10[172]256[170]7
- 20300 [153]"take it easy, hope you had fun !!":[128]
- 49000 [153]"loadwhat voice ? (1/2) ";:[141]5310:in[178][181]([197](in$)):[139]in[179]1[175]in[177]2[167]50
- 49010 tv[178]in:z[178]6[172]4096:[139]in[178]2[167]z[178]8[172]4096
- 49020 [153]"starting block? ";:[141]5310:in[178][181]([197](in$)):[139]in[179]0[175]in[177]1730[167]50
- 49030 bb[178]in
- 49040 vi[178]3[172]in:[153]"ending block?";:[141]5310:in[178][181]([197](in$)):[139]in[179]0[175]in[177]1730[167]50
- 49050 eb[178]in:en[178]3[172]in[170]z:z[178]vi[170]z:[139]z[177]en[167]50
- 49100 [159]4,4:[153]#4,[199](10)"interrupt music editor printout. (c) 1983 pete lobl"
- 49200 [152]4,[199](10)"voice"tv"beginning block"bb"ending block"eb
- 49210 [152]4,[199](10)
- 50000 a[178][194](z):b[178][194](z[170]1):c[178][194](z[170]2)
- 50020 [152]4,"block"bb;
- 50060 [139]a[178]0[167][152]4,"at/dec ="b"sus/rel ="c:[137]50100
- 50080 [152]4,"duration"a;
- 50081 j[178]b[172]256[170]c:[129]i[178]1[164]12:[139]j[178]o1%(i)[167]a[178]1:b[178]i:[137]50090
- 50082 [139]j[178]o2%(i)[167]a[178]2:b[178]i:[137]50090
- 50083 [139]j[178]o3%(i)[167]a[178]3:b[178]i:[137]50090
- 50084 [139]j[178]o4%(i)[167]a[178]4:b[178]i:[137]50090
- 50085 [139]j[178]o5%(i)[167]a[178]5:b[178]i:[137]50090
- 50086 [139]j[178]o6%(i)[167]a[178]6:b[178]i:[137]50090
- 50087 [139]j[178]o7%(i)[167]a[178]7:b[178]i:[137]50090
- 50088 [139]j[178]o8(i)[167]a[178]8:b[178]i:[137]50090
- 50089 [130]:[139]j[177]0[167][152]4," ? note":[137]50100
- 50090 i[178]13:[139]j[178]0[167][152]4," rest":[137]50100
- 50092 [130]:[152]4,a;:in$[178]ns$(b):a$[178]nf$(b):[139]a$[178]in$[167][152]4,a$:[137]50100
- 50094 [152]4,in$" ("a$")"
- 50100 bb[178]bb[170]1:[139]bb[177]eb[167][153]#4,[199](10)"printing complete."[199]10):[160]4:[137]50
- 50110 z[178]z[170]3:[137]50000
-